#define _CRT_SECURE_NO_WARNINGS 
//#include<stdio.h>
//int main()
//{
//	int day = 0;
//	scanf("%d", &day);
//	int count_day = 0;
//	int gold_sum = 0;
//	int current_gold = 1;
//	while (count_day < day)
//	{
//		int current_day = current_gold;
//		for (int i = 0; i < current_day && count_day < day; i++)
//		{
//			gold_sum += current_gold;
//			count_day++;
//		}
//		current_gold++;
//	}
//	printf("%d", gold_sum);
//	return 0;
//}
//#include<stdio.h>
//#include<stdlib.h>
//#include<stdbool.h>
//#define MAX 5010
//#define MOD 1000000007
//typedef long long II;
//II solve(char* s)
//{
//	II lcnt = 0;
//	II rcnt = 0;
//	char num[MAX];
//	II i = 0;
//	II j = 0;
//	II cnt = 0;
//	for (i = 0; s[i] != '\0'; i++)
//	{
//		if (s[i] == '(')
//		{
//			lcnt++;
//		}
//		else
//		{
//			rcnt++;
//		}
//		if (lcnt)
//		{
//			lcnt--;
//			rcnt--;
//		}
//		num[++cnt] = rcnt;
//	}
//	II dp[MAX][MAX];
//	memset(num, 0, sizeof(num));
//	memset(dp, 0, sizeof(dp));
//	dp[0][0] = 1;
//	for (i = 1; i <= cnt; i++)
//	{
//		for (j = num[i - 1]; j <= cnt; j++)
//		{
//			dp[i - 1][j] += dp[i - 1][j - 1] % MOD;
//			dp[i - 1][j] %= MOD;
//		}
//		for (j = num[i]; j <= cnt; j++)
//		{
//			dp[i][j] += (dp[i - 1][j] - dp[i - 1][num[i - 1] - 1]);
//			dp[i][j] %= MOD;
//		}
//	}
//	return dp[cnt][num[cnt]];
//}
//void rev(char* s)
//{
//	char temp[MAX];
//	long long i = 0;
//	int len = strlen(s);
//	for (i = len - 1; i >= 0; i--)
//	{
//		temp[len - i - 1] = (s[i] == '(') ? ')' : '(';
//	}
//	temp[len] = '\0';
//	strcpy(s, temp);
//}
//int main()
//{
//	char s[MAX];
//	scanf("%s", s);
//	long long int L = solve(s) % MOD;
//	rev(s);
//	long long int R = solve(s) % MOD;
//	printf("%lld", (L * R) % MOD);
//	return 0;
//}
//#include<stdio.h>
//int isPrime(int x)
//{
//	if (x == 2 || x == 3)
//	{
//		return 1;
//	}
//	if (x % 6 != 5 && x % 6 != 1)
//	{
//		return 0;
//	}
//	int i = 0;
//	for(i = 5; i * i < x; i++)
//	{
//		if (x % i == 0)
//		{
//			return 0;
//		}
//	}
//	return 1;
//}
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int arr[100] = { 0 };
//	int i = 0;
//	//int j = 0;
//	int temp = n;
//	while (temp)
//	{
//		arr[i++] = temp % 10;
//		temp /= 10;
//	}
//	int len = i;
//	int count = 0;
//	if (n == 0)
//	{
//		printf("The world is lucky to have you\n");
//		return 0;
//	}
//	if (isPrime(n))
//	{
//		for (i = 0; i < len; i++)
//		{
//			if (arr[i] == arr[len - i - 1])
//			{
//				count++;
//			}
//		}
//		if (count == len)
//		{
//			printf("The world is lucky to have you\n");
//		}
//		else
//		{
//			printf("The world is as good as you wish\n");
//		}
//	}
//	else
//	{
//		printf("The world is as good as you wish\n");
//	}
//	return 0;
//}
//#include<stdio.h>
//#include<math.h>
//int isPrime(int n)
//{
//	/*if (n == 2 || n == 3)
//	{
//		return 1;
//	}
//	if (n % 6 != 5 && n % 6 != 1)
//	{
//		return 0;
//	}
//	for (int i = 5; i * i < n; i++)
//	{
//		if (n % i == 0)
//		{
//			return 0;
//		}
//	}
//	return 1;*/
//	if (n < 2)
//	{
//		return 0;
//	}
//	for (int i = 2; i <= sqrt(n); i++)
//	{
//		if (n % i == 0)
//		{
//			return 0;
//		}
//	}
//	return 1;
//}
//int isParlindrome(int n)
//{
//	int temp = n;
//	int reverse = 0;
//	while (temp)
//	{
//		reverse = reverse * 10 + temp % 10;
//		temp /= 10;
//	}
//	return n == reverse;
//}
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	if (isPrime(n) && isParlindrome(n))
//	{
//		printf("The world is lucky to have you\n");
//	}
//	else
//	{
//		printf("The world is as good as you wish\n");
//	}
//	return 0;
//}
//#include<stdio.h>
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int i = 0;
//	int sum = 0;
//	for (i = 1; i <= n; i++)
//	{
//		sum += i;
//	}
//	printf("%d\n", sum);
//	return 0;
//}
//#include<stdio.h>
//#include<math.h>
//int isPrime(int x)
//{
//	if (x < 2)
//	{
//		return 0;
//	}
//	for (int i = 2; i <= sqrt(x); i++)
//	{
//		if (x % i == 0)
//		{
//			return 0;
//		}
//	}
//	return 1;
//}
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int count = 0;
//	int sum = 0;
//	for (int i = 2; i <= n; i++)
//	{
//
//
//			if (isPrime(i))
//			{
//				sum += i;
//
//				if (sum <= n)
//				{
//					printf("%d\n", i);
//					count++;
//				}
//			}
//		
//
//
//	}
//	printf("%d", count);
//	return 0;
//}
#include<stdio.h>
int isPrime(int x)
{
	if (x < 2)
	{
		return 0;
	}
	for (int i = 2; i * i < x; i++)
	{
		if (x % i == 0)
		{
			return 0;
		}
	}
	return 1;
}
int main()
{
	int n = 0;
	scanf("%d", &n);
	int arr[1000] = { 0 };
	int i = 0;
	for (i = 0; i < n; i++)
	{
		scanf("%d", &arr[i]);
	}
	int j = 0;
	int count = n;
	int digit = n;
	int k = 0;
	int b[500];
	int c[1000];
	//for (i = 0; i < n; i++)
	//{
	//	for (j = 1; j < n; j++)
	//	{
	//		digit--;
	//		if (digit >= 0)
	//		{
	//			b[k++] = arr[i] + arr[i + j];
	//		}
	//		else
	//		{
	//			break;
	//		}
	//	}
	//}
	/*for (i = 0,j = i + 1; i < n && j < n; i+=2,j+=2)
	{
		b[k++] = arr[i] + arr[j];
	}*/
	for (i = 0, j = i + 2; i < n && j < n; i++)
	{
		b[k++] = arr[i] + arr[j];
	}
	int count_2 = 0;
	for (i = 0; i < k; i++)
	{
		printf("%d ", b[i]);
		if (isPrime(b[i]))
		{
			count_2++;
		}
	}
	printf("%d\n", count_2);
	return 0;
}